gdk: Avoid gdk_device_get_associated_device()
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 30 Jul 2020 12:26:51 +0000 (14:26 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 30 Jul 2020 16:17:42 +0000 (18:17 +0200)
Query the seat for that.

gdk/gdkdisplay.c
gdk/gdksurface.c

index 7d8d7cb9acd35c84ef9ca501611cb985eccbc594..14abf69c73a2f21f9aa96c00abf52dfe09c8fb13 100644 (file)
@@ -816,9 +816,15 @@ _gdk_display_get_pointer_info (GdkDisplay *display,
                                GdkDevice  *device)
 {
   GdkPointerSurfaceInfo *info;
+  GdkSeat *seat;
 
-  if (device && gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
-    device = gdk_device_get_associated_device (device);
+  if (device)
+    {
+      seat = gdk_device_get_seat (device);
+
+      if (device == gdk_seat_get_keyboard (seat))
+        device = gdk_seat_get_pointer (seat);
+    }
 
   if (G_UNLIKELY (!device))
     return NULL;
index bf313c9204a301f85abd82c563e5c8bbe67b6471..944b34ab4dcc29c5ffee7e0d653170ed031f0607 100644 (file)
@@ -1807,7 +1807,7 @@ gdk_surface_set_cursor (GdkSurface *surface,
           devices = gdk_seat_get_physical_devices (s->data, GDK_SEAT_CAPABILITY_TABLET_STYLUS);
           for (d = devices; d; d = d->next)
             {
-              device = gdk_device_get_associated_device (d->data);
+              device = d->data;
               gdk_surface_set_cursor_internal (surface, device, surface->cursor);
             }
           g_list_free (devices);